【レポート】AWS サービスで実現する継続的インテグレーション/継続的デリバリー(CI/CD)入門 #AWS-30 #AWSSummit
こんにちは!コンサル部のinomaso(@inomasosan)です。
AWS Summit Online Japan 2021が、2021年5月11日(火)、12日(水)で開催中されております。
本記事は2021年5月12日(水)に行われた「AWS サービスで実現する継続的インテグレーション/継続的デリバリー(CI/CD)入門」のセッションレポートとなります。
セッション概要
変化に迅速に対応する為に、ソフトウェアのリリースにも俊敏性が求められています。「より頻繁」、「より迅速」、「より安全」にリリースを行うには自動化が欠かせません。このセッションでは、継続的インテグレーション/継続的デリバリー(CI/CD)に利用できる AWS サービスをご紹介し、どのようにリリースプロセスを自動化することができるのかご紹介します。
登壇者
アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 西日本ソリューション部 ソリューションアーキテクト 松本 雅博
セッションレポート
1. 対象者
- CI/CDをAWSサービスで実現する方法にご興味をお持ちの方
2. ゴール
- CI/CDに利用可能なAWS各サービスについての理解、活用
3. アジェンダ
- CI/CDが必要となる背景
- CI/CDに関連するAWSサービス紹介と、使い方のはじめの一歩
4. CI/CDが必要となる背景
・配布モデルの変化
- 従来はパッケージとして発売されていたソフトウェアは、現在はネットワークでの配布が主流となった
- 変化に対応するには従来の手作業でのソフトウェアリリースでは間に合わない
- 以下の自動化に対応したツールが必要
- ソフトウェア開発のリリースプロセスの流れを管理するツール
- コードの不具合や潜在的な問題を正しくテスト/検査するツール
- アプリケーションをデプロイするツール
・リリースプロセスのレベル
- 継続的インテグレーション(CI)はソースコードのチェックインをトリガーに、静的解析やビルド単体テストを行う
- CDは継続的デリバリーと継続的デプロイメントの2つがある。
- 継続的デリバリーではリリース準備までが自動化され、リリースしても良い判断が出ればデプロイプロセスへ進む
- 継続的デプロイメントは継続的デリバリーの繰り返し安全だと判断されたプロセスを全自動化し、ソースコードのチェックインから本番環境のデプロイまで人間は関与しない
5. CI/CDに関連するAWSサービス
- 本セッションでは赤枠内のサービス紹介
・AWS CodeCommit
- AWSマネージメントコンソールからリポジトリ内のコンテンツを閲覧、編集やコミット履歴の表示、プルリクエストの作成が可能
・AWS CodeBuild
- ソースコードは下記と連携可能
- AWS CodeCommit
- Amazon S3
- Bitbucket
- GitHub
- Github Enterprise
- ソースコードの取得場所、実行するビルドコマンド、ビルド出力の格納コマンドなど、ビルドの実行方法に関する情報を、ビルドプロジェクトという単位で管理する
- ビルド環境はOS、ランタイム、ビルド実行に使用するツールの組み合わせ
- ビルドの出力がある場合、ビルド環境はその出力をS3バケットにアップロードする
- ビルドの成功や失敗、各フェーズの移行をAmazon SNSやAWS Chatbotへ通知することが可能
・AWS CodeDeploy
- Pull型の場合は各インスタンスが必要な情報をPullするので、サーバを意識する必要がなくなる
・AWS CodePipeline
- ステージの中にはアクションを定義する
- アクションは具体的な処理内容で、例えばCodeCommitからソースを取得したり、CodeBuildでコンパイルする等
- トラジションはステージでアクションが正常に実行されると、次のステージに自動的に繋ぐ
- 継続的デリバリー用に、承認アクションを利用して承認が行われたら次のステージに進むパイプラインを構築可能
・AWS CodeStar
- AWS CodeStarはCI/CD環境に触れたことがなくて、試しに手軽にCI/CD環境を利用してみたい場合にオススメ
- CodeStarのプロジェクト作成は、テンプレートを選択して、プロジェクト名を入力し、リポジトリを選択するだけで、数分待てば環境が作成される
まとめ
CI/CDの必要性と、関連するAWSサービスについて学ぶことができました。
Codeシリーズはマネージドサービスなので、パッチ適用やスケーリングをAWSに任せることができるのもメリットの一つですね。
CI/CD環境を構築した経験がないので、セッションでも紹介されていたAWS Code サービス群を活⽤して、CI/CD のための構成を構築しよう︕を試してみようと思います。
この記事が、どなたかのお役に立てば幸いです。それでは!